package com.isoftstone.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.isoftstone.entity.Users;

@Repository
public interface UserDao {
	
	/**
	 * 查询用户所有信息，包括该用户对应的角色信息
	 * sys_user，sys_user_role，sys_role
	 * @return
	 */
	public List<Users> getAllUserList();
	
	public List<Users> searchUserList(@Param("realName")String realName,@Param("roleId")Integer roleId);
	
	/**
	 * 添加用户信息表sys_user
	 * @param users
	 */
	public boolean insertUser(Users users);
	
	/**
	 * 添加用户信息角色关系表sys_user_role
	 * @param userId   用户id
	 * @param roleId   角色id
	 */
	public boolean insertUserRole(@Param("userId") String userId,@Param("roleId") Integer roleId);
	
	/**
	 * 删除用户信息表sys_user 中user_id=username的记录
	 * @param username
	 */
	public int deleteUser(String username);
	
	/**
	 * 删除用户信息角色关系表sys_user_role中user_id=username的记录
	 * @param username   用户id
	 */
	public int deleteUserRole(String username);
	
	/**
	 * 通过username取得该用户信息包括该用户对应的角色信息
	 * sys_user，sys_user_role
	 * @param userName
	 * @return
	 */
	public Users getUserByUserName(String userName);
	
	
	/**
	 * 修改用户信息表sys_user
	 * @param users
	 */
	public boolean updateUser(Users users);
	
	/**
	 * 修改用户信息角色关系表sys_user_role
	 * @param userId   用户id
	 * @param roleId   角色id
	 */
	public boolean updateUserRole(@Param("userId") String userId,@Param("roleId") Integer roleId);

}
